﻿using Dlls;
using Persistencia;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using UI.Views.Consultas;

namespace UI.Views.Cadastros
{
    /// <summary>
    /// Interaction logic for frmVendedor.xaml
    /// </summary>
    public partial class frmVendedor : Window
    {
        private Context context;
        private Vendedore vendedor;
        private VendedorDLL vendedorDll;
        public frmVendedor()
        {
            vendedor = new Vendedore();
            vendedorDll = new VendedorDLL();
            InitializeComponent();
        }

        private void InsertOrUpdate(object sender, RoutedEventArgs e)
        {
            try
            {
                if (txtCodigo.Text == "")
                {
                    vendedor.NomeVendedor = txtNome.Text;
                    vendedor.Email = txtEmail.Text;
                    vendedor.CPF = txtCPF.Text;
                    vendedor.Telefone1 = txtTelefone1.Text;
                    vendedor.Telefone2 = txtTelefone2.Text;
                    vendedor.DataAdmissao = Convert.ToDateTime(txtDataAdmissao.Text);
                    vendedor.Comissao = decimal.Parse(txtComissao.Text);
                    vendedor.FazPedidoClienteBloqueadoSN = Convert.ToBoolean(chkClienteBloqueado.IsChecked);

                    vendedorDll.Insert(vendedor);
                    MessageBox.Show("Registro gravado com sucesso");
                }
                else
                {
                    vendedor.NomeVendedor = txtNome.Text;
                    vendedor.Email = txtEmail.Text;
                    vendedor.CPF = txtCPF.Text;
                    vendedor.Telefone1 = txtTelefone1.Text;
                    vendedor.Telefone2 = txtTelefone2.Text;
                    vendedor.DataAdmissao = Convert.ToDateTime(txtDataAdmissao.Text);
                    vendedor.Comissao = decimal.Parse(txtComissao.Text);
                    vendedor.FazPedidoClienteBloqueadoSN = Convert.ToBoolean(chkClienteBloqueado.IsChecked);

                    vendedorDll.Update(int.Parse(txtCodigo.Text),vendedor);
                    MessageBox.Show("Registro atualizado com sucesso");
                }
                reset(0, this);
                vendedor = new Vendedore();
            }
            catch (Exception)
            {
                
                MessageBox.Show("Registro não pode ser gravador");
            }
        }
        private static void reset(int depth, DependencyObject obj)
        {
            // Percorre todos os filhos do objeto visual.
            for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
                reset(depth + 1, VisualTreeHelper.GetChild(obj, i));

            // Se for um TextBox, limpa.
            if (obj is TextBox)
                ((TextBox)obj).Text = string.Empty;
            if (obj is CheckBox)
                ((CheckBox)obj).IsChecked = false;

            if (obj is DatePicker)
                ((DatePicker)obj).Text = string.Empty;
        }

        private void EditarVendedor(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                if (txtCodigo.Text!="")
                {
                    Vendedore vendedor = vendedorDll.getVendedor(int.Parse(txtCodigo.Text));
                    if (vendedor!=null)
                    {
                        txtCodigo.Text = vendedor.CodVendedor.ToString();
                        txtNome.Text = vendedor.NomeVendedor.ToString();
                        txtCPF.Text = vendedor.CPF.ToString();
                        txtTelefone1.Text = vendedor.Telefone1.ToString();
                        txtTelefone2.Text = vendedor.Telefone2.ToString();
                        txtEmail.Text = vendedor.Email.ToString();
                        chkClienteBloqueado.IsChecked = vendedor.FazPedidoClienteBloqueadoSN;
                        txtDataAdmissao.Text = vendedor.DataAdmissao.ToString();
                        txtComissao.Text = vendedor.Comissao.ToString();   
                    }
                    else
                    {
                        MessageBox.Show("Registro não encontrado");
                    }
                }
                else
                {
                    frmConsultaPadrao frm = new frmConsultaPadrao("Vendedor");
                    frm.Owner = this;
                    frm.ShowDialog();
                }
            }
        }
    }
}
